package com.wuax.utils;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

/**
 * 图书编码生成工具类
 * 编码格式：[分类编码][年月][序号]
 * 例如：LIT202412001（文学艺术类2024年12月第1本）
 */
public class BookCodeGenerator {
    
    /**
     * 生成图书编码
     * @param typeCode 图书分类编码
     * @param sequenceNumber 序号（当月该分类下的第几本书）
     * @return 图书编码
     */
    public static String generateBookCode(String typeCode, int sequenceNumber) {
        // 获取当前年月
        String yearMonth = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMM"));
        
        // 生成序号（3位数，不足补0）
        String sequence = String.format("%03d", sequenceNumber);
        
        // 使用默认前缀如果分类编码为空
        String prefix = (typeCode != null && !typeCode.trim().isEmpty()) ? typeCode.trim() : "GEN";
        
        return prefix + yearMonth + sequence;
    }
    
    /**
     * 获取当前年月字符串（用于查询）
     * @return 年月字符串，格式：yyyyMM
     */
    public static String getCurrentYearMonth() {
        return LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMM"));
    }
} 